HoverEffectComponent on one child highlights all siblings in an Entity?

I am trying to verify my understanding of adding a HoverEffectComponent on entities inside a scene in RealityViews.

Inside RealityComposer Pro, I have added the required Input Target and Collision components to one entity inside a node with multiple siblings, and left any options as defaults. They appear to create appropriately sized bounding boxes etc for these objects.

In my RealityView I programmatically add the HoverEffectComponents to the entities as I don't see them in RCP.

On device, this appears to "work" in the sense that when I gaze at the entity, it lights up - but so does every other entity in the scene - even those without Input Target and Collision components attached.

Because the documentation on the components is sparse I am unsure if this is behavior as designed (e.g. all entities in that node are activated) or a bug or something in between.

Has anyone encountered this and is there an appropriate way of setting these relationships up?

Thanks

Replies

One small bit of extra info- there are other entities with children in the scene - these don’t highlight, as I would expect.

So this is probably a bug.

Here's two functions that should produce mostly identical results (and at a minimum enable highlighting on any entity that has 'park' in the name):

extension Entity {
    func applyComponentsRecursively() {

       if 
            self.name.contains("_8_") ||
            self.name.contains("_9_") ||

             //   ... additional fifteen clauses ...

            self.name.contains("_26_") ||
            self.name.contains("_30_") ||
            self.name.contains("parking") ||
            self.name.contains("retail") ||
            self.name.contains("hotel")

        {

            self.components.set(HoverEffectComponent())

        }
        
        // Recursive call for all child entities
        for child in self.children {
            child.applyComponentsRecursively()
        }
    }
}



extension Entity {
    func applyComponentsRecursively() {
        // Check if the entity's name contains "park"
        if self.name.contains("park") {

            self.components.set(HoverEffectComponent())
        
        // Recursive call for all child entities
        for child in self.children {
            child.applyComponentsRecursively()  
        }
    }
}

Most of the components in the USDZ have names that work with both the first and second if-thens: 'park_1_1','park_9_4' etc.

But the top one works, and the bottom one doesn't (I've seen it either highlight every entity or no entity).

I don't have time to debug this further but if I can find an easily reproducible case I'll file a feedback item on this.